---
title: Invoke job by client id, no parameters
summary: Invokes a job with no caller-supplied parameters, delegating to the canonical positional-values flow with an empty value array.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-22
operation_id: OP-002
trigger: A SOAP caller invokes ExecuteJobWithClientId on the UC4 route
---

# OP-002: Invoke job by client id, no parameters

This process backs the `ExecuteJobWithClientId` operation. It delegates entirely to [OP-006](execute-job-with-values-and-client-id.md), the canonical flow, forwarding an empty value array. **Transaction boundary: none.**

| Field | Value |
| --- | --- |
| **Operation ID** | OP-002 |
| **Trigger** | SOAP caller invokes `ExecuteJobWithClientId` |
| **Entry operation** | [`ExecuteJobWithClientId`](../contracts/uc4-service.md#executejobwithclientid) |
| **Owning component** | `UC4Service.ExecuteJobWithClientId` (`UC4Service.cs:145`) |
| **Inputs** | `environment` (`short`), `jobName` (`string`) |
| **Outputs** | `UC4Result` — the mapped downstream result, or an empty result if the job is blocked |
| **Failure behavior** | Identical to [OP-006](execute-job-with-values-and-client-id.md) — an unhandled exception surfaces as a generic SOAP fault carrying full exception detail |

## Request and response

| Direction | Element | Type | Declared in | Notes |
| --- | --- | --- | --- | --- |
| Request | `environment` | `short` | `UC4Service.cs:145` | Client id identifying the environment |
| Request | `jobName` | `string` | `UC4Service.cs:145` | The job to invoke |
| Response | `<return>` | `UC4Result`* | `UC4Service.cs:145` | Mapped downstream result, or an empty `UC4Result` if blocked |

## Steps

1. Accept `environment` and `jobName` from the SOAP request.
2. Delegate to `ExecuteJobWithValuesAndClientId(environment, jobName, new string[0])` — an empty positional-value array (`UC4Service.cs:145`).

   > **Origin**: Step 2 delegates into [OP-006: Invoke job by client id, positional values (canonical flow)](execute-job-with-values-and-client-id.md), documented by this run. See that page for the full logging, [BR-UC4-004](../business-rules.md#br-uc4-004-job-name-must-not-be-null) null check, [BR-UC4-001](../business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document)/[BR-UC4-002](../business-rules.md#br-uc4-002-default-allow-for-unmatched-environment)/[BR-UC4-003](../business-rules.md#br-uc4-003-rule-evaluation-order-and-match-type) gate evaluation, [BR-UC4-009](../business-rules.md#br-uc4-009-positional-values-are-named-arg1-arg2) naming (over the empty array), [BR-UC4-010](../business-rules.md#br-uc4-010-downstream-service-address-resolved-per-call)/[BR-UC4-011](../business-rules.md#br-uc4-011-forwarded-job-stamped-with-host-identity) forwarding, and [BR-UC4-012](../business-rules.md#br-uc4-012-downstream-result-mapped-field-by-field) result mapping.
   - On failure: any failure mode of the delegated flow (see [OP-006](execute-job-with-values-and-client-id.md)) surfaces identically here.
3. Return the result produced by the delegated flow to the caller.

## Process flow

```mermaid
flowchart TD
    A["Accept environment,<br>jobName"] --> B["Delegate to<br>ExecuteJobWithValuesAndClientId<br>with empty values array"]
    B --> C{"Delegated flow<br>succeeds?"}
    C -->|"Yes"| D["Return UC4Result"]
    C -->|"No"| E["Detailed WCF fault<br>from delegated flow"]
```

## Transaction and side effects

| Aspect | Finding |
| --- | --- |
| Unit of work | None |
| Commit point | Not applicable — no persistence |
| Records written | None locally |
| Downstream calls | Same as [OP-006](execute-job-with-values-and-client-id.md) |
| Shared state touched | None |
| Repeat-call behavior | Not idempotent from the host's perspective |

## Faults and error handling

| Failure | Fault type the caller receives | Produced by | Source |
| --- | --- | --- | --- |
| Any failure mode of the delegated flow | Generic SOAP fault, full exception detail | The WCF framework — no `IErrorHandler` is confirmed for this class | `UC4Service.cs:145` (delegation site) |

`UC4Service` carries `[LogErrorBehavior]`, an external `IServiceBehavior` whose implementation is not in this repository; its contribution is observability, not fault shaping — see [Faults and error pipeline](../faults.md).

## Authorization

| Requirement | Enforced by | Source | Applies to |
| --- | --- | --- | --- |
| [None in code](../authentication-authorization.md#access-requirements-per-operation) | Nothing — no attribute or programmatic check exists | `UC4Service.cs:145` | This operation |

## Related documentation
- [Index](../index.md)
- [Overview](../overview.md)
- [Architecture](../architecture.md)
- [Activation and hosting](../activation-hosting.md)
- [Operations](../operations.md)
- [Faults and error pipeline](../faults.md)
- [Authentication and authorization](../authentication-authorization.md)
- [Dependencies](../dependencies.md)
- [Configuration](../configuration.md)
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [Operational runbook](../operational-runbook.md)
- [Tech debt](../tech-debt.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- `src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs`
